package com.zhiyizhen.handheld.common;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Base64;
import android.widget.ImageView;

public class Base64ImageLoader {
    /**
     * 将Base64字符串转换为Bitmap并设置到ImageView
     * @param base64String Base64编码的图片字符串
     * @param imageView 要显示图片的ImageView
     * @return 是否加载成功
     */
    public static boolean loadBase64Image(String base64String, ImageView imageView) {
        if (base64String == null || base64String.isEmpty() || imageView == null) {
            return false;
        }

        try {
            // 去除Base64字符串中可能存在的前缀（如data:image/jpeg;base64,）
            String pureBase64String = base64String.split(",")[1];

            // 将Base64字符串转换为字节数组
            byte[] decodedString = Base64.decode(pureBase64String, Base64.DEFAULT);

            // 将字节数组转换为Bitmap
            Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);

            // 设置Bitmap到ImageView
            imageView.setImageBitmap(decodedByte);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    /**
     * 将Base64字符串转换为Bitmap（重载方法）
     * @param base64String Base64编码的图片字符串
     * @return 转换后的Bitmap，失败返回null
     */
    public static Bitmap base64ToBitmap(String base64String) {
        if (base64String == null || base64String.isEmpty()) {
            return null;
        }

        try {
            // 去除Base64字符串中可能存在的前缀
            String pureBase64String = base64String.split(",")[1];

            // 将Base64字符串转换为字节数组
            byte[] decodedString = Base64.decode(pureBase64String, Base64.DEFAULT);

            // 将字节数组转换为Bitmap
            return BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}
